﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ComboBoxExpand
{
    /// <summary>
    /// 使用该特性将类中的某个属性设置为在ComboBox中显示，配合StComboBox使用。
    /// &#x000D;若将此特性加在类属性上，请重写类的ToString();
    /// &#x000D;请勿将特性加在以IEnumerable基础接口的类上。
    /// <!--注意一个类中只能有一个属性加此特性。多加不出错，但是只显示第一个属性的内容-->
    /// <!--注意用于类中的另一个类-->
    /// </summary>
    ///<remarks>demo    public class TestClaz{ [ShowInCombobox]public TestItem SingleItem { get; set; }}     public class TestItem{          public override string ToString(){}}</remarks>
    [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = false)]
    public class ShowInComboboxAttribute : Attribute
    {
        public string DescriptionName { get; private set; }
        public ShowInComboboxAttribute()
        {

        }

        /// <summary>
        /// 当填写名称时候，将展示该名称不展示该属性的值。
        /// &#x000D;当为Enum类型时填写<see cref="descriptionName"/>
        /// </summary>
        /// <param name="Name">描述名称</param>
        public ShowInComboboxAttribute(string descriptionName)
        {
            this.DescriptionName = descriptionName;
        }
    }
}
